<?php namespace web\admin\controller;
/** .-------------------------------------------------------------------
 * |  Software: [HDPHP framework]
 * |      Site: www.hdphp.com
 * |-------------------------------------------------------------------
 * |    Author: 向军 <2300071698@qq.com>
 * |    WeChat: aihoudun
 * | Copyright (c) 2012-2019, www.houdunwang.com. All Rights Reserved.
 * '-------------------------------------------------------------------*/

class Category extends Common{
	private $db;
	public function __construct(){
		parent::__construct();
		$this->db=new \system\model\Category;
	}
	//分类列表
	public function index() {
		View::with('title','类型管理列表');
		$data=$this->db->get();
		$data=Data::tree($data, 'cname', $fieldPri = 'cid', $fieldPid = 'pid');
		View::with('data',$data);
		View::make();
	}
	
//	添加分类
	public function add(){
		View::with('title','添加顶级分类');
		if(IS_POST){
			$re=$this->db->store(1);
			if(!$re){
				message($this->db->getError(),'','error');die;
			}
//			添加成功
			message('添加成功',U('admin/category/index'));
		}
		
		View::make();
	}
	
//	添加子类
	public function sor(){
		if(IS_POST){
			$re=$this->db->store(0);
			if(!$re){
				message($this->db->getError(),'','error');die;
			}
//			添加成功
			message('添加成功',U('admin/category/index'));
			
		}
		
//		获取传递ID取得父级分类名
		$fd=Q('get.cid',0);
		$fdata=$this->db->where('cid',$fd)->field('cid,cname')->first();
//		分配到页面
		View::with('fdata',$fdata);
//		获取类型数据
		$tdata=Db::table('type')->get();
//		分配到页面
		View::with('tdata',$tdata);
		View::make();
	}
	
//	编辑
	public function edit(){
		View::with('title','编辑类型');
		if(IS_POST){
			$re=$this->db->edit();
			if(!$re){
				message($this->db->getError(),'','error');die;
			}
//			编辑成功
			message('编辑成功',U('admin/category/index'));
		}
//		接收get参数	
		$id=Q('get.cid',0);
//		查询该条数据
		$data=$this->db->where('cid',$id)->first();
//		分配到页面
		View::with('data',$data);
//		获取所有分类数据
//		获取pid等于$id的数据
//		注释：树形结构下如果父级分类不输出，那么他的子级也不输出
		$fdata=$this->db->where("cid not in(".$id.")")->get();
		$fdata=Data::tree($fdata, 'cname', $fieldPri = 'cid', $fieldPid = 'pid');
		View::with('fdata',$fdata);
//		类型数据		
		$tdata=Db::table('type')->get();
		View::with('tdata',$tdata);
		View::make();
	}
	
//	删除
	public function del(){
//		获取id
		$id=Q('get.cid',0);
		$pid=$this->db->where('cid',$id)->pluck('pid');
		$arr=$this->db->where('pid',$id)->get();
		foreach ($arr as $k => $v) {
			$v['pid']=$pid;
			$this->db->save($v);
		}
		$re=$this->db->where('cid',$id)->delete();
		if(!$re){
			message('删除失败，请检测后重新删除',U('index'));
		}
		message('删除成功',U('index'));
		
	}
	
	
	
}